minus2(x, 0) -> x
minus2(0, y) -> 0
minus2(s1(x), s1(y)) -> minus2(p1(s1(x)), p1(s1(y)))
minus2(x, plus2(y, z)) -> minus2(minus2(x, y), z)
p1(s1(s1(x))) -> s1(p1(s1(x)))
p1(0) -> s1(s1(0))
div2(s1(x), s1(y)) -> s1(div2(minus2(x, y), s1(y)))
div2(plus2(x, y), z) -> plus2(div2(x, z), div2(y, z))
plus2(0, y) -> y
plus2(s1(x), y) -> s1(plus2(y, minus2(s1(x), s1(0))))
↳ QTRS
↳ DependencyPairsProof
minus2(x, 0) -> x
minus2(0, y) -> 0
minus2(s1(x), s1(y)) -> minus2(p1(s1(x)), p1(s1(y)))
minus2(x, plus2(y, z)) -> minus2(minus2(x, y), z)
p1(s1(s1(x))) -> s1(p1(s1(x)))
p1(0) -> s1(s1(0))
div2(s1(x), s1(y)) -> s1(div2(minus2(x, y), s1(y)))
div2(plus2(x, y), z) -> plus2(div2(x, z), div2(y, z))
plus2(0, y) -> y
plus2(s1(x), y) -> s1(plus2(y, minus2(s1(x), s1(0))))
DIV2(plus2(x, y), z) -> PLUS2(div2(x, z), div2(y, z))
DIV2(s1(x), s1(y)) -> MINUS2(x, y)
MINUS2(s1(x), s1(y)) -> P1(s1(x))
MINUS2(s1(x), s1(y)) -> P1(s1(y))
MINUS2(x, plus2(y, z)) -> MINUS2(minus2(x, y), z)
PLUS2(s1(x), y) -> PLUS2(y, minus2(s1(x), s1(0)))
MINUS2(s1(x), s1(y)) -> MINUS2(p1(s1(x)), p1(s1(y)))
P1(s1(s1(x))) -> P1(s1(x))
DIV2(s1(x), s1(y)) -> DIV2(minus2(x, y), s1(y))
MINUS2(x, plus2(y, z)) -> MINUS2(x, y)
PLUS2(s1(x), y) -> MINUS2(s1(x), s1(0))
DIV2(plus2(x, y), z) -> DIV2(x, z)
DIV2(plus2(x, y), z) -> DIV2(y, z)
minus2(x, 0) -> x
minus2(0, y) -> 0
minus2(s1(x), s1(y)) -> minus2(p1(s1(x)), p1(s1(y)))
minus2(x, plus2(y, z)) -> minus2(minus2(x, y), z)
p1(s1(s1(x))) -> s1(p1(s1(x)))
p1(0) -> s1(s1(0))
div2(s1(x), s1(y)) -> s1(div2(minus2(x, y), s1(y)))
div2(plus2(x, y), z) -> plus2(div2(x, z), div2(y, z))
plus2(0, y) -> y
plus2(s1(x), y) -> s1(plus2(y, minus2(s1(x), s1(0))))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
DIV2(plus2(x, y), z) -> PLUS2(div2(x, z), div2(y, z))
DIV2(s1(x), s1(y)) -> MINUS2(x, y)
MINUS2(s1(x), s1(y)) -> P1(s1(x))
MINUS2(s1(x), s1(y)) -> P1(s1(y))
MINUS2(x, plus2(y, z)) -> MINUS2(minus2(x, y), z)
PLUS2(s1(x), y) -> PLUS2(y, minus2(s1(x), s1(0)))
MINUS2(s1(x), s1(y)) -> MINUS2(p1(s1(x)), p1(s1(y)))
P1(s1(s1(x))) -> P1(s1(x))
DIV2(s1(x), s1(y)) -> DIV2(minus2(x, y), s1(y))
MINUS2(x, plus2(y, z)) -> MINUS2(x, y)
PLUS2(s1(x), y) -> MINUS2(s1(x), s1(0))
DIV2(plus2(x, y), z) -> DIV2(x, z)
DIV2(plus2(x, y), z) -> DIV2(y, z)
minus2(x, 0) -> x
minus2(0, y) -> 0
minus2(s1(x), s1(y)) -> minus2(p1(s1(x)), p1(s1(y)))
minus2(x, plus2(y, z)) -> minus2(minus2(x, y), z)
p1(s1(s1(x))) -> s1(p1(s1(x)))
p1(0) -> s1(s1(0))
div2(s1(x), s1(y)) -> s1(div2(minus2(x, y), s1(y)))
div2(plus2(x, y), z) -> plus2(div2(x, z), div2(y, z))
plus2(0, y) -> y
plus2(s1(x), y) -> s1(plus2(y, minus2(s1(x), s1(0))))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDP
↳ QDP
P1(s1(s1(x))) -> P1(s1(x))
minus2(x, 0) -> x
minus2(0, y) -> 0
minus2(s1(x), s1(y)) -> minus2(p1(s1(x)), p1(s1(y)))
minus2(x, plus2(y, z)) -> minus2(minus2(x, y), z)
p1(s1(s1(x))) -> s1(p1(s1(x)))
p1(0) -> s1(s1(0))
div2(s1(x), s1(y)) -> s1(div2(minus2(x, y), s1(y)))
div2(plus2(x, y), z) -> plus2(div2(x, z), div2(y, z))
plus2(0, y) -> y
plus2(s1(x), y) -> s1(plus2(y, minus2(s1(x), s1(0))))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
P1(s1(s1(x))) -> P1(s1(x))
POL( P1(x1) ) = max{0, x1 - 1}
POL( s1(x1) ) = x1 + 1
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ PisEmptyProof
↳ QDP
↳ QDP
↳ QDP
minus2(x, 0) -> x
minus2(0, y) -> 0
minus2(s1(x), s1(y)) -> minus2(p1(s1(x)), p1(s1(y)))
minus2(x, plus2(y, z)) -> minus2(minus2(x, y), z)
p1(s1(s1(x))) -> s1(p1(s1(x)))
p1(0) -> s1(s1(0))
div2(s1(x), s1(y)) -> s1(div2(minus2(x, y), s1(y)))
div2(plus2(x, y), z) -> plus2(div2(x, z), div2(y, z))
plus2(0, y) -> y
plus2(s1(x), y) -> s1(plus2(y, minus2(s1(x), s1(0))))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDP
MINUS2(s1(x), s1(y)) -> MINUS2(p1(s1(x)), p1(s1(y)))
MINUS2(x, plus2(y, z)) -> MINUS2(x, y)
MINUS2(x, plus2(y, z)) -> MINUS2(minus2(x, y), z)
minus2(x, 0) -> x
minus2(0, y) -> 0
minus2(s1(x), s1(y)) -> minus2(p1(s1(x)), p1(s1(y)))
minus2(x, plus2(y, z)) -> minus2(minus2(x, y), z)
p1(s1(s1(x))) -> s1(p1(s1(x)))
p1(0) -> s1(s1(0))
div2(s1(x), s1(y)) -> s1(div2(minus2(x, y), s1(y)))
div2(plus2(x, y), z) -> plus2(div2(x, z), div2(y, z))
plus2(0, y) -> y
plus2(s1(x), y) -> s1(plus2(y, minus2(s1(x), s1(0))))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
MINUS2(s1(x), s1(y)) -> MINUS2(p1(s1(x)), p1(s1(y)))
Used ordering: Polynomial Order [17,21] with Interpretation:
MINUS2(x, plus2(y, z)) -> MINUS2(x, y)
MINUS2(x, plus2(y, z)) -> MINUS2(minus2(x, y), z)
POL( 0 ) = 0
POL( s1(x1) ) = x1 + 1
POL( minus2(x1, x2) ) = 1
POL( MINUS2(x1, x2) ) = x2
POL( plus2(x1, x2) ) = x1 + x2
POL( p1(x1) ) = max{0, x1 - 1}
p1(s1(s1(x))) -> s1(p1(s1(x)))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDP
MINUS2(x, plus2(y, z)) -> MINUS2(x, y)
MINUS2(x, plus2(y, z)) -> MINUS2(minus2(x, y), z)
minus2(x, 0) -> x
minus2(0, y) -> 0
minus2(s1(x), s1(y)) -> minus2(p1(s1(x)), p1(s1(y)))
minus2(x, plus2(y, z)) -> minus2(minus2(x, y), z)
p1(s1(s1(x))) -> s1(p1(s1(x)))
p1(0) -> s1(s1(0))
div2(s1(x), s1(y)) -> s1(div2(minus2(x, y), s1(y)))
div2(plus2(x, y), z) -> plus2(div2(x, z), div2(y, z))
plus2(0, y) -> y
plus2(s1(x), y) -> s1(plus2(y, minus2(s1(x), s1(0))))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
MINUS2(x, plus2(y, z)) -> MINUS2(x, y)
MINUS2(x, plus2(y, z)) -> MINUS2(minus2(x, y), z)
POL( 0 ) = 0
POL( s1(x1) ) = max{0, -1}
POL( minus2(x1, x2) ) = max{0, -1}
POL( MINUS2(x1, x2) ) = x2 + 1
POL( plus2(x1, x2) ) = x1 + x2 + 1
POL( p1(x1) ) = 1
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ PisEmptyProof
↳ QDP
↳ QDP
minus2(x, 0) -> x
minus2(0, y) -> 0
minus2(s1(x), s1(y)) -> minus2(p1(s1(x)), p1(s1(y)))
minus2(x, plus2(y, z)) -> minus2(minus2(x, y), z)
p1(s1(s1(x))) -> s1(p1(s1(x)))
p1(0) -> s1(s1(0))
div2(s1(x), s1(y)) -> s1(div2(minus2(x, y), s1(y)))
div2(plus2(x, y), z) -> plus2(div2(x, z), div2(y, z))
plus2(0, y) -> y
plus2(s1(x), y) -> s1(plus2(y, minus2(s1(x), s1(0))))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
PLUS2(s1(x), y) -> PLUS2(y, minus2(s1(x), s1(0)))
minus2(x, 0) -> x
minus2(0, y) -> 0
minus2(s1(x), s1(y)) -> minus2(p1(s1(x)), p1(s1(y)))
minus2(x, plus2(y, z)) -> minus2(minus2(x, y), z)
p1(s1(s1(x))) -> s1(p1(s1(x)))
p1(0) -> s1(s1(0))
div2(s1(x), s1(y)) -> s1(div2(minus2(x, y), s1(y)))
div2(plus2(x, y), z) -> plus2(div2(x, z), div2(y, z))
plus2(0, y) -> y
plus2(s1(x), y) -> s1(plus2(y, minus2(s1(x), s1(0))))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDPOrderProof
DIV2(s1(x), s1(y)) -> DIV2(minus2(x, y), s1(y))
DIV2(plus2(x, y), z) -> DIV2(x, z)
DIV2(plus2(x, y), z) -> DIV2(y, z)
minus2(x, 0) -> x
minus2(0, y) -> 0
minus2(s1(x), s1(y)) -> minus2(p1(s1(x)), p1(s1(y)))
minus2(x, plus2(y, z)) -> minus2(minus2(x, y), z)
p1(s1(s1(x))) -> s1(p1(s1(x)))
p1(0) -> s1(s1(0))
div2(s1(x), s1(y)) -> s1(div2(minus2(x, y), s1(y)))
div2(plus2(x, y), z) -> plus2(div2(x, z), div2(y, z))
plus2(0, y) -> y
plus2(s1(x), y) -> s1(plus2(y, minus2(s1(x), s1(0))))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
DIV2(plus2(x, y), z) -> DIV2(x, z)
DIV2(plus2(x, y), z) -> DIV2(y, z)
Used ordering: Polynomial Order [17,21] with Interpretation:
DIV2(s1(x), s1(y)) -> DIV2(minus2(x, y), s1(y))
POL( 0 ) = 1
POL( s1(x1) ) = x1
POL( minus2(x1, x2) ) = x1
POL( DIV2(x1, x2) ) = x1 + 1
POL( plus2(x1, x2) ) = x1 + x2 + 1
POL( p1(x1) ) = 0
minus2(x, 0) -> x
minus2(0, y) -> 0
minus2(x, plus2(y, z)) -> minus2(minus2(x, y), z)
minus2(s1(x), s1(y)) -> minus2(p1(s1(x)), p1(s1(y)))
p1(s1(s1(x))) -> s1(p1(s1(x)))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
DIV2(s1(x), s1(y)) -> DIV2(minus2(x, y), s1(y))
minus2(x, 0) -> x
minus2(0, y) -> 0
minus2(s1(x), s1(y)) -> minus2(p1(s1(x)), p1(s1(y)))
minus2(x, plus2(y, z)) -> minus2(minus2(x, y), z)
p1(s1(s1(x))) -> s1(p1(s1(x)))
p1(0) -> s1(s1(0))
div2(s1(x), s1(y)) -> s1(div2(minus2(x, y), s1(y)))
div2(plus2(x, y), z) -> plus2(div2(x, z), div2(y, z))
plus2(0, y) -> y
plus2(s1(x), y) -> s1(plus2(y, minus2(s1(x), s1(0))))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
DIV2(s1(x), s1(y)) -> DIV2(minus2(x, y), s1(y))
POL( 0 ) = max{0, -1}
POL( s1(x1) ) = x1 + 1
POL( minus2(x1, x2) ) = x1
POL( DIV2(x1, x2) ) = x1 + x2 + 1
POL( plus2(x1, x2) ) = max{0, -1}
POL( p1(x1) ) = max{0, x1 - 1}
minus2(x, 0) -> x
minus2(0, y) -> 0
minus2(x, plus2(y, z)) -> minus2(minus2(x, y), z)
minus2(s1(x), s1(y)) -> minus2(p1(s1(x)), p1(s1(y)))
p1(s1(s1(x))) -> s1(p1(s1(x)))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ PisEmptyProof
minus2(x, 0) -> x
minus2(0, y) -> 0
minus2(s1(x), s1(y)) -> minus2(p1(s1(x)), p1(s1(y)))
minus2(x, plus2(y, z)) -> minus2(minus2(x, y), z)
p1(s1(s1(x))) -> s1(p1(s1(x)))
p1(0) -> s1(s1(0))
div2(s1(x), s1(y)) -> s1(div2(minus2(x, y), s1(y)))
div2(plus2(x, y), z) -> plus2(div2(x, z), div2(y, z))
plus2(0, y) -> y
plus2(s1(x), y) -> s1(plus2(y, minus2(s1(x), s1(0))))